// components/custom-scroll/index.js
Component({
  /**
   * 样式隔离
   */
  options: {
    styleIsolation: 'isolated', // 组件样式隔离 isolated 互不影响 apply-shared页面影响组件  share互相影响
    multipleSlots: true //为true时才能使用具名插槽
  },
  /**
   * 组件的属性列表
   */
  properties: {
    // 是否滚动
    openScroll: {
      type: Boolean,
      value: true,
    },
    // 是否开启下拉刷新
    openDownRefresh: {
      type: Boolean,
      value: true,
    },
    // 开启下拉刷新
    openUpLoad: {
      type: Boolean,
      value: true,
    },
    // 缺省图片地址
    emptyImageUrl: {
      type: String,
      value: ''
    },
    // 缺省文字
    emptyText: {
      type: String,
      value: '暂无数据'
    },
    // 下拉文字
    pullText: {
      type: String,
      value: '释放即可刷新'
    },
    // 下拉刷新
    loadText: {
      type: String,
      value: '数据加载中 ···'
    },
    // 没有更多了
    noMoreText: {
      type: String,
      value: '没有更多了'
    },
    // 下拉刷新状态
    triggeredState: {
      type: Boolean,
      value: false
    },
    // 下拉状态
    downState: {
      type: Boolean,
      value: false
    },
    // 刷新状态
    refreshState: {
      type: Boolean,
      value: false
    },
    // 加载状态
    loadState: {
      type: Boolean,
      value: false
    },
    // 没有更多状态
    moreState: {
      type: Boolean,
      value: false
    },
    // 缺省状态
    emptyState: {
      type: Boolean,
      value: false
    }
  },

  /**
   * 组件的初始数据
   */
  data: {
    isScroll: true, // 允许滚动
    enhanced: true, // 滚动增强
    refresherEnabled: true, // 开启自定义下拉刷新
    refresherDefaultStyle: 'none', // 设置自定义下拉刷新默认样式，支持设置 black | white | none， none 表示不使用默认样式
    refresherThreshold: 50, // 设置自定义下拉刷新阀值 
    refresherBackground: 'none', // 下拉刷新区域背景
    bounces: false, // iOS 下 scroll-view 边界弹性控制 (同时开启 enhanced 属性后生效)
    showScrollbar: false, // 滚动条显隐控制 (同时开启 enhanced 属性后生效)
    fastDeceleration: true, // 滑动减速速率控制, 仅在 iOS 下生效 (同时开启 enhanced 属性后生效)
  },

  /**
   * 组件的方法列表
   */
  methods: {
    // 滚动时触发
    handleScroll(event) {
      this.triggerEvent('onScroll', event)
    },
    // 滚动到顶部
    handleScrolltoupper(event) {
      this.triggerEvent('onScrolltoupper', event)
    },
    // 滚动到底部触发
    handleScrolltolower(event) {
      this.triggerEvent('onScrolltolower', event)
    },
    // 自定义下拉刷新控件被下拉
    handleRefresherpulling(event) {
      this.triggerEvent('onRefresherpulling', event)
    },
    // 自定义下拉刷新被触发
    handleRefresherrefresh(event) {
      this.triggerEvent('onRefresherrefresh', event)
    },
    // 自定义下拉刷新被复位
    handleRefresherrestore(event) {
      this.triggerEvent('onRefresherrestore', event)
    },
    // 自定义下拉刷新被终止
    handleRefresherabort(event) {
      this.triggerEvent('onRefresherabort', event)
    }
  }
})